
// use std::{collections::BTreeMap, env::temp_dir, fs::{remove_file, File}, io::Write, path::PathBuf};

// use regex::Regex;
// use wtask_base::{error::WResult, req::{download_file, download_txt}};

// use crate::apps::{file::utils::PathNode, task::utils::{args::{WTaskSubmitMetaBase, WTaskSubmitMetaType, WTaskSubmitMetaTypeSelect}, func::file_name_remove_space, meta::TaskMeta}};


// #[test]
// fn test_timer() {
//     let re = Regex::new(r"(_?\d+ )(_?\d+ )(_?\d+ )(_?\d+ )(_?\d+ )(_?\d+ )(.+)").unwrap();
//     let timer = "_1 _1 _1 _1 _2 _1 %E4%B8%B4%E6%97%B6%E8%BF%90%E8%A1%8C.20250327111525";
//     let res = re.captures(timer).unwrap().iter().skip(1).take(7).map(| mat |{
//         mat.unwrap().as_str().trim().to_owned()
//     }).collect::<Vec<_>>();
//     assert!(res.len() == 7, "{res:?}");
// }


// #[test]
// fn test_taskmeta() -> WResult<()> {
//     let p = PathBuf::from("/root/wTask/wtask_data/wtask/wtask_a.2025_02_18_13_50_41");
//     let mut args = BTreeMap::new();

//     let mut args1_attrs_kv = BTreeMap::new();
//     args1_attrs_kv.insert("inp1".to_string(), "val1".to_string());
//     let args1_attrs = WTaskSubmitMetaTypeSelect {
//         default: None,
//         min: 1,
//         max: 1,
//         custom: true,
//         kv: args1_attrs_kv,
//         children: None
//     };
//     let args1 = WTaskSubmitMetaBase {
//         name: "数据类型".to_string(),
//         // tp: "select".to_string(),
//         doc: "数据类型，只能选择一个，但是这一个允许选择已有或自行输入，该参数必须输入。".to_string(),
//         required: true,
//         attrs: WTaskSubmitMetaType::Select(args1_attrs)
//     };
//     args.insert("key".to_string(), args1);
//     let a = TaskMeta {
//         id: "1".to_string(),
//         version: "2".to_string(),
//         doc: "3".to_string(),
//         cmd: "4".to_string(),
//         files: PathNode::new(&p, u8::MAX, None),
//         args,
//         tags: vec!["a".to_string()],
//         enable: true,
//         dir: "".to_owned()
//     };
//     let data = serde_to_vec(&a)?;
//     let mut f = File::create("temp.json")?;
//     f.write_all(&data)?;
    
//     Ok(())
// }



// #[test]
// fn test_cmd_download() -> WResult<()> {
//     let url_base = "https://raw.githubusercontent.com/LonlyWinter/wTask/master";
//     let url = format!("{url_base}/Version");
//     let res_version = download_txt(&url, None)?;
//     assert_eq!(res_version, "2025_05_06_09_19_27", "Version");

//     let url = format!("{url_base}/wtask_install.{res_version}.zip");
//     let p = temp_dir().join("wtask_install.test.zip");
//     download_file(&url, None, &p)?;
//     assert!(p.exists(), "file");
//     remove_file(p)?;
//     Ok(())
// }


// #[test]
// fn test_name_regex() -> WResult<()> {
//     let t = "你好fsfsd 你好\n";
//     let t = file_name_remove_space(t);
//     assert_eq!(t, "fsfsd");
//     Ok(())
// }